package d6_object;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class ObjectOutputStreamDemo01 {
    public static void main(String[] args) {
        //解释:因为java对象在内存中, 希望有些对象下次还要用, 就序列化保存-->不然JVM一旦停止对象就没了
        //实际业务: 你比如说我们今后去一个数据库里面去一个数db，就是数据库里面啊，去查了，比如说有假如说查了1000个对象。但是这1000个对象，我们可能都不会放到内存中。
        //因为它会占我们内存的那这1000个对象呢，我可能又要用一段时间，那很多人他就可可能会把这1000个对象存到文件中去。

        //目标: 完成序列化, 把java文件存储到文件中去

        try (

                //2、创建序列化流与目标源文件的管道(就是接通)
                ObjectOutputStream oos = new ObjectOutputStream(
                        new FileOutputStream(
                                "javapromax\\day10-io-code\\src\\陈某08.txt"
                        )
                );) {
            //1、准备一个对象
            Student student = new Student("陈平安", 18, "chenchen", 172.2);

            //3、开始序列化对象
            oos.writeObject(student);//注意如果,序列化所在的类设计图,没实现Serializable(这是一个序列化的通行证) 就会报NotSerializableException-->无法序列化

        } catch (IOException e) {
            e.printStackTrace();//打印堆栈信息
        }
    }
}
